package br.edu.unilasalle.simon_test.venda;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

import br.edu.unilasalle.simon_test.AbstractPage;

public class VendaPage extends AbstractPage {
	
	@FindBy(id = "produtoTmp_value")
	protected WebElement produto;
	
	@FindBy(id = "quantidade")
	protected WebElement quantidade;
	
	@FindBy(id = "desconto")
	protected WebElement desconto;
	
	@FindBy(id = "btnAdicionar")
	protected WebElement adicionar;
	
	@FindBy(id = "selFormPagto")
	protected WebElement selFormPagto;
	
	@FindBy(id = "selParcelas")
	protected WebElement selParcelas;
	
	@FindBy(id = "notaFiscal")
	protected WebElement notaFiscal;
	
	@FindBy(id = "selFunc")
	protected WebElement selFunc;
	
	@FindBy(id = "cliente_value")
	protected WebElement cliente;
	
	@FindBy(id = "btnFinalizar")
	protected WebElement btnFinalizar;
	
	@FindBy(css = "div.modal-footer.ng-scope > button.btn.btn-primary")
	protected WebElement btnModal;
	
	public VendaPage(WebDriver driver) {
		super(driver);
	}
	
	public void abreTela() {
		openAsAdmin();
		open("/#/vendas-detail");
	}
	
	public void efetuarVenda() throws Exception {
		adicionarProduto("CAL01"); // Adiciona produto calça jeans CAL01
		selectComboByValue(selFormPagto, "0"); // Seleciona forma de pagamento 0-DINHEIRO
		type(notaFiscal, "12345"); // Informa nota fiscal 12345
		selectComboByValue(selFunc, "0"); // Seleciona vendedor 0-Administrador
		pesquisarAutocomplete(cliente, "haggstron"); // Seleciona cliente haggstron
		find(btnFinalizar).click();
		waitAjaxComplete();
		btnModal.click(); // Fecha modal
	}
	
	private void adicionarProduto(String str) throws Exception {
		pesquisarAutocomplete(produto, str);
		find(adicionar).click();
		waitAjaxComplete();
	}

}
